The arrangement of a network of nodes and links is defined by a network topology. The network topology can determine the physical and logical interconnections between the network nodes, where each node has one or more links to one or more other nodes. The physical topology of a network is determined by the configuration of the physical connections between the nodes. The configuration can be represented by a multi-dimensional geometric shape, for example, a ring, a star, a line, a lattice, a hypercube, or a torus. The logical topology of a network is determined by the flow of data between the nodes.
A network of processing nodes can be used for supercomputing applications. For example, a large supercomputing application can be broken into different subsets of instructions running on different processing nodes of a network. In order to reduce latency and improve efficiency, distribution of traffic across the entire network and maximized communication between nodes on a local level are preferred.
Typically, a network's addressing and routing schemes increase in complexity with an increase in the complexity of the network topology. Complex routing tables can require significant central processing unit (CPU) time to implement. Conventional packet routing requires that a packet must be completely received at a node before the destination address in the packet's header can be decoded and the packet can be forwarded, resulting in latency. Latency can also increase with a complex addressing scheme. A complex network topology can have a high hop count to node ratio, where each hop introduces several clock cycles of packet latency.